The present invention relates generally to systems and methods that enable multiple-access of the same channel in a network, and, more particularly, to a system and method of timestamp synchronization in a network that employs a reservation-based TDMA protocol.
In general, communications networks, particularly wireless networks, typically employ a multiple-access protocol that is designed to prevent collisions of data packets due to simultaneous transmission of the data packets by multiple transmitters in the network using the same channel. One protocol that has come into widespread use is known as Time-Division Multiple Access (TDMA). A detailed description of this technique can be found in the reference book Telecommunications Networks: Protocols, Modeling and Analysis, Addison-Wesley, 1997. In general, in accordance with the TDMA protocol, channel time is divided into small time slots, each of which is assigned to a different node (user). This time slot assignment can either be fixed (classical TDMA), or variable (reservation-based TDMA). In either case, since the number of nodes (users) is finite the data is usually transmitted in TDMA xe2x80x9cframesxe2x80x9d, which ensure that the delays encountered by the different users are finite.
For example, in fixed-assignment TDMA, the TDMA frame consists of the total number of slots assigned to all users, after which the TDMA frame repeats. In the case of reservation-based TDMA, a natural framing occurs in terms of different xe2x80x9cphasesxe2x80x9d of the TDMA frame, consisting typically of a xe2x80x9ccontrolxe2x80x9d phase in which reservations are requested and assigned, and a xe2x80x9cdataxe2x80x9d phase in which the data is transmitted by the different users in their respective assigned time slots.
It is necessary that all transmitters and receivers in the TDMA network be synchronized in terms of the TDMA frame. An incorrectly synchronized transceiver, at best, cannot communicate, but, at worst, can cause the entire TDMA network to collapse if appropriate safeguards are not built into the protocol. It should be recognized that TDMA frame synchronization is not the same as clock synchronization of a modem, which is a function of the Physical layer (PHY). Usually, frame synchronization is achieved using a centralized control strategy implemented by a central controller (CC). However, frame synchronization can also be implemented in a distributed fashion.
In most TDMA networks, a universal time reference is required to properly allocate resources for transmission. This universal time reference is usually provided in the form of a xe2x80x9ctimestampxe2x80x9d, e.g., which specifies the current time. The timestamps are broadcast periodically by the central controller, and are used by the end terminals (WTs) to synchronize their xe2x80x9ctimestampxe2x80x9d registers.
For variable-sized TDMA frames, synchronization achieved through the use of timestamps typically requires the utilization of a phase-locked loop (PLL) in each of the WTs, which can be quite complex. Further, the PLLs used for this purpose must be redesigned whenever the parameters of the timestamp scheme are changed, for example, when the frequency of timestamp transmission is changed. In this connection, a generic synchronization scheme is desired in order to enable an WT to be used interchangeably within many different networks.
Most protocols have an interval during which the timestamp update must be sent. Otherwise, the timing jitter may be larger than what can be handled by a particular application, e.g., an MPEG decoder. For a reservation-based TDMA protocol, there are many problems with the timestamp-based approach. The first problem is that the transmission of the timestamp value must also be reserved, and subsequently, other data must also be queued for transmission. In order to ensure efficient use of processor resources (which must be used for managing many other functions), this queuing is usually scheduled in advance. However, the timestamp value cannot be obtained until the exact time of transmission. Further, the queuing of the data packets behind the timestamp value cannot be done before the timestamp value is obtained. Of course, it is possible to switch the data stream between two separate queues with one holding the timestamp value and the other holding the data. However, this solution is quite complicated and requires precise synchronization.
A more detailed understanding of this problem can be gained by considering the case of a wireless asynchronous transfer mode (ATM) network that uses a reservation-based medium-access control (MAC) protocol. The MAC protocol implementation depends on a periodic control-data-frame (CDF), as described in pending U.S. patent application Ser. No. 08/770,024 filed on Dec. 19, 1996, now U.S. Pat. No. 6,198,728, and incorporated by reference herein. Each CDF contains many phases, during which both control and data information is sent from both the base station (BS) and the wireless terminal (WT). In the context of the implementation shown in the drawings and discussed hereinafter, the BS corresponds to the previously described central controller (CC) and the WT corresponds to the previously described end terminal (WT).
FIG. 1 illustrates the four phase structure, namely, BS_SIG; DN_DATA; UP_DATA; and, E_BURST. A brief description of each of these phases follows:
BS_SIG: During this phase, the BS sends control information for the downlink. The timestamp packet is normally sent during this phase. At the BS, the processor starts the transmission of packets from BS. At the WT, the WT starts the process of reception of packets from the BS.
DN_DATA: During this phase, the BS sends data packets for the WTs. At the BS, the processor is busy interpreting the packets sent by the WT during the UP_DATA phase. At the WT, the processor is busy storing the PHY FIFO for the next burst of transmission during the UP_DATA phase.
UP_DATA: During this phase, the WT sends data and signaling packets for the BS. Signaling is sent using superslots. At the BS, the processor is busy storing the PHY FIFO for the next burst of transmission during the BS_SIG and DN_DATA phases. At the WT, the processor is busy interpreting the packets sent by the BS during the BS_SIG and the DN_DATA phases.
E_BURST: During this phase, the WTs, which have not currently been allocated space for transmission during the UP_DATA phase, indicate whether they want to enter the WATM network. Both the WT and the BS processors are busy implementing the E_BURST phase.
The hardware design is based on the BS and each WT keeping the same timestamp values as a basis for computing the four phases of a CDF. All must maintain the same time periods in order to communicate and transfer packets effectively. All must synchronize their timestamps periodically, by copying the base station value, and all must take starting time directives from the BS.
The MAC processor is assumed to be interrupt-driven for both the WTs and the BS. The BS determines the timing for the entire system. Using the timestamp value as a reference, it determines the exact time when each of the phases operates. This timing information is sent during the BS_SIG phase. Since all phases are successive to each other, the WT and the BS set up a counter for the next phase based on the timing information, which then triggers an interrupt to the processor when the counter overflows. The processor must finish its functions during the respective phase within the time allotted and be prepared for the next phase.
For timestamp synchronization, the BS can be assumed to send a timestamp value during the BS_SIG phase. However, note that the BS is busy storing the PHY_FIFO with the packets intended for transmission during the BS_SIG and DN_DATA phases. However, the timestamp value must be determined during the BS_SIG phase and cannot be obtained during the UP_DATA phase. Consequently, the normal transmission stream must be stopped to allow for the timestamp value to be loaded from the timestamp register during the time of transmission. This solution is not desirable since it conflicts with the direct data path.
It should be appreciated that the problem described above is not due to the particular protocol considered, but is generally due to the reservation-based nature of the protocol, whereby decisions on what is transmitted at particular times are made in advance of those times.
In U.S. patent application Ser. No. 09/086,270, filed on May 28, 1998, now U.S. Pat. No. 6,347,084 the teachings of which are expressly incorporated herein, a two-step method was presented which synchronized timestamps in a network (e.g., a wireless ATM network) that included a control node (BS) and a plurality of other nodes (WTs) which communicate with one another over a common channel mediated by a medium-access control (MAC) subsystem (e.g., one that uses a reservation-based TDMA protocol). Specifically timestamp information is sent from the BS in two steps.
First, a timestamp_get command is sent by the BS at a first time, in response to which the current timestamp value existing in each respective node is stored in a register at each respective node, including the BS and the WTs. Then, at a later time, a timestamp_load command is sent from the BS, which sends the timestamp value stored in the BS register during the previous timestamp_get command.
Upon receipt of the timestamp_load command each of the WTs compare the current value of their respective timestamp counters against a fixed value (e.g. the timestamp value stored in the WT register during the previous timestamp_get command) to determine when to set their sync flag latches, indicating that a correction will take place. All processors poll for these sync flags during the downlink phase of the CDF, and, if set, will detect this event concurrently. The timestamp value correction then takes place during the BS_SIG phase of the next CDF.
All of the WTs, and the BS, look for this header byte at their PHY layer interfaces in order to ensure that all terminals will act on the header byte as close in time as possible. The delay between them is the delay of the physical path only, which is constant. The timestamp value correction is preferably done entirely by hardware, without processor participation, so that the entire process is deterministic.
Although the method discussed in the ""270 application provided significant flexibility in the design of software for the MAC protocol by allowing data and timestamp packets to be scheduled for transmission before the actual time of transmission, it incorporated some redundancy internally.
An object of the invention claim herein is to provide an improvement to the invention claimed in the ""270 application which will substantially eliminate this redundancy.
The invention described herein comprises a one-step timestamp update method to distribute the timestamp value among all transceivers in the network. Specifically, it combines the timestamp_get and timestamp_load commands in the two-step method described in the ""270 application into a single command, called the timestamp command. At the BS, when the timestamp command is sent from MAC to PHY over the MAC-PHY interface, the current timestamp value at the BS is captured from the MAC-PHY interface. Except at power-on, the timestamp value contained in the timestamp command and the captured timestamp value should be equal. The captured timestamp value is then added by a timestamp update interval, T, and stored to become the timestamp value included in the next timestamp transmission exactly T seconds later. The value of T can be varied at the BS as different physical conditions arise.
At each WT, when the timestamp command is received by PHY and sent to MAC over the MAC-PHY interface, the current timestamp value at the WT is captured from the MAC-PHY interface. The captured timestamp value is then compared with the timestamp value contained in the timestamp command and the difference, if any, is stored in an offset_register. This offset value will later be added to the timestamp counter in a non-time-critical manner under software control before the arrival of the next timestamp command. Using this method, one can achieve MAC synchronization without the additional overhead required using the two step method described, requiring the two commands, timestamp_get and timestamp_load, taught by the ""270 application.
The present invention also encompasses networks that implement the above described methods.